Virtual reality (VR) involves computer generation of visual imagery and sounds to create the illusion that the user is spatially immersed in a fully interactive a 3D virtual world. The 3D virtual world can range from a high-fidelity physical simulation of reality to completely imaginary spaces unlike anything the user has ever seen or experienced. As a result, VR has found many applications in architecture and urban design, simulation and training, and entertainment.
There are a number of different types of VR systems. In most desktop VR systems, the user sees the virtual world through the avatar's eyes (e.g., from a first person perspective). Here, a user operates different controls on a keyboard, mouse, joystick or game controller to control different features of the avatar's movement (e.g., speed, direction, jumping, use of a weapon, etc.). However, the avatar's body usually moves in the direction the avatar is facing in the virtual world. This may be referred to as “head steering”. In some systems, a user can also control the direction of the avatar's body movement independent of the view direction by pressing a particular button or key or executing a particular sequence of commands. This type of operation where control of view direction is independent of movement direction may be referred to as “strafing”.
Immersive VR takes this one step further by enabling the user's point of view in the virtual world to be updated based on the user's head and/or body movements. In some less interactive systems, users may simply move a hand-held controller in different ways to cause the avatar to perform different movements. For example, in a virtual tennis game, a user may swing the controller similar to a tennis racket and the motion controls the timing and direction of the avatar's swing while the system automatically handles the locomotion movements required to hit a moving tennis ball. Other more interactive systems may track a user's head or other body motions to control more aspects of the avatar's movements in the virtual environment, such as the avatar view direction, avatar body orientation, body posture, direction of movement, distance of movement or speed of movement. Haptic feedback and hand tracking devices may also be used to enable the user to issue commands or directly manipulate objects in the 3D virtual world.
Desktop gaming systems encompass the majority of VR systems currently on the market. In desktop gaming applications, user interaction with 3D virtual worlds is often limited by computer interfaces that require the movements and actions of a player's character (or avatar) to be controlled with the hands, for example by moving a joystick or mouse and pressing buttons or keys.
Other approaches allow users to control locomotive movement of avatars in virtual environments using movements and actions more similar to what they might perform in the real world, such as stepping, walking, jogging, running, jumping, etc. These approaches can be divided into those requiring the user to interact with external apparatus and other hardware devices fixed in the environment which provide kinesthetic feedback, such as linear and omni-directional treadmills, moving floor plates and hollow spheres, and those that monitor gestural movements of the user representative of locomotive motions such as walking, running and jumping that are performed in place (e.g., without the user translating the position of their body in the real world).
One disadvantage of the kinesthetic feedback approaches that require a user to interact with treadmills, moving floor plates, hollow spheres, etc., is that the external hardware is often large, heavy, expensive and/or dangerous to use. They also suffer from the fact that momentum builds up in the device as it is operated by the user which makes it difficult for the user to stop quickly, change or reverse direction, make sudden lateral movements, take individual steps or jump (if these are even possible) without falling. The gestural approaches attempt to monitor typical user movements associated with bipedal locomotion (i.e. stepping, walking, running, jumping, etc) using a variety of types of sensors to track user motions and extract features from these motions in order to control corresponding movements of an avatar in the virtual world. Described herein are embodiments of a virtual locomotion controller user interface and system based on such an approach.